#pragma once

#include<string>
#include<vector>
#include "Scope.h"
#include "Scubserver.h"
#include "Tokenizer.h"

struct Scuba
{
public:
    std::vector<Scope*> m_apxScope;
    //FIXME Can be removed, imho
    Scope* m_pxCurrentScope;
    Scubserver* m_pxScubserver;
    
    virtual void enterScope(Scope* inScope);
    virtual void exitScope(void);

public:
    void feed(Token& inToken );
    void dump();
    void setObserver(Scubserver* inScubserver);
    Scuba(void);
    ~Scuba(void);
};
